diff --git a/resource/sqlupgrade/PG/sql202303130202.sql b/resource/sqlupgrade/PG/sql202303130202.sql index 54a9eae70..c6ed8b220 100644 --- a/resource/sqlupgrade/PG/sql202303130202.sql +++ b/resource/sqlupgrade/PG/sql202303130202.sql @@ -2,9 +2,9 @@ Delete from LeftMenuInfo where id=100186; / Delete from LeftMenuConfig where infoid=100186; / -call LMConfig_U_ByInfoInsert (2,100118,9); +select LMConfig_U_ByInfoInsert (2,100118,9); / -call LMInfo_Insert (100186,541290,'','',2,100118,9,18); +select LMInfo_Insert (100186,541290,'','',2,100118,9,18); / update LeftMenuInfo set mobxrouteurl = '',iconClassName = '',fullrouteurl='/spa/hrmSalary/static/index.html#/main/hrmSalary/externalPersonManage' where id = 100186; / \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202307200603.sql b/resource/sqlupgrade/PG/sql202307200603.sql index e211c560e..522bcacec 100644 --- a/resource/sqlupgrade/PG/sql202307200603.sql +++ b/resource/sqlupgrade/PG/sql202307200603.sql @@ -1,17 +1,14 @@ -select @current_date:= date_format( now(),'%Y-%m-%d'); -select @current_time:= date_format( now(),'%T'); -INSERT INTO datashowset(SHOWNAME, SHOWCLASS, DATAFROM, DATASOURCEID, SQLTEXT, WSURL, WSOPERATION, XMLTEXT, INPARA,SHOWTYPE, KEYFIELD, PARENTFIELD, SHOWFIELD, DETAILPAGEURL, TYPENAME, SELECTTYPE, SHOWPAGEURL,BROWSERFROM, NAME, CUSTOMID, CUSTOMHREF, SQLTEXT1, SQLTEXT2, NAMEHEADER, DESCRIPTIONHEADER,WSWORKNAME, SEARCHBYID, CREATEDATE, CREATETIME, MODIFYDATE, MODIFYTIME, SEARCHBYNAME,onlylowestnode, characterset, uuid, isSupportPaging, ESBID, ESBSHOWID, mobiledetailpageurl,isPhyPage, subcompanyid, unconditionalQuery) VALUES ('salaryExtEmp', '1', '1', '', 'SELECT * FROM hrsa_external_employee where delete_type=0', '', '', '', '', '1','id', '', '', '', '', '', '', 2, '薪酬非系统人员', NULL, '', NULL, NULL, NULL, NULL, '', '', @current_date,@current_time, NULL, NULL, '', '', '0', uuid(), '', '', '', '', '1', 0, 1); +INSERT INTO datashowset(SHOWNAME, SHOWCLASS, DATAFROM, DATASOURCEID, SQLTEXT, WSURL, WSOPERATION, XMLTEXT, INPARA,SHOWTYPE, KEYFIELD, PARENTFIELD, SHOWFIELD, DETAILPAGEURL, TYPENAME, SELECTTYPE, SHOWPAGEURL,BROWSERFROM, NAME, CUSTOMID, CUSTOMHREF, SQLTEXT1, SQLTEXT2, NAMEHEADER, DESCRIPTIONHEADER,WSWORKNAME, SEARCHBYID, CREATEDATE, CREATETIME, MODIFYDATE, MODIFYTIME, SEARCHBYNAME,onlylowestnode, characterset, uuid, isSupportPaging, ESBID, ESBSHOWID, mobiledetailpageurl,isPhyPage, subcompanyid, unconditionalQuery) VALUES ('salaryExtEmp', '1', '1', '', 'SELECT * FROM hrsa_external_employee where delete_type=0', '', '', '', '', '1','id', '', '', '', '', '', '', 2, '薪酬非系统人员', NULL, '', NULL, NULL, NULL, NULL, '', '', '2020-01-01', '19:12:12', NULL, NULL, '', '', '0', uuid(), '', '', '', '', '1', 0, 1); -select @datashowset_id:= max(id)from datashowset; INSERT INTO datashowcacheset(showname, subcompanyid, isopencache, Createdate, createtime, Updatedate, Updatetime) -VALUES ('salaryExtEmp', '0', 0, @current_date, @current_time, NULL, NULL); +VALUES ('salaryExtEmp', '0', 0, '2020-01-01', '19:12:12', NULL, NULL); INSERT INTO datashowparam(MAINID, FIELDNAME, SEARCHNAME, TRANSQL, ISSHOWNAME, dsporder, uuid, width) -VALUES (@datashowset_id, '姓名', 'username', '', 1, 1, uuid(), NULL); +VALUES ((select max(id) from datashowparam), '姓名', 'username', '', 1, 1, uuid(), NULL); INSERT INTO datashowparam(MAINID, FIELDNAME, SEARCHNAME, TRANSQL, ISSHOWNAME, dsporder, uuid, width) -VALUES (@datashowset_id, '手机号', 'mobile', '', 0, 2, uuid(), NULL); +VALUES ((select max(id) from datashowparam), '手机号', 'mobile', '', 0, 2, uuid(), NULL); INSERT INTO datasearchparam(MAINID, FIELDNAME, SEARCHNAME, FIELDTYPE, WOKFLOWFIELDNAME, dsporder, uuid, isshowfield) -VALUES (@datashowset_id, '姓名', 'username', '2', '', 1, uuid(), ''); +VALUES ((select max(id) from datasearchparam), '姓名', 'username', '2', '', 1, uuid(), ''); INSERT INTO datasearchparam(MAINID, FIELDNAME, SEARCHNAME, FIELDTYPE, WOKFLOWFIELDNAME, dsporder, uuid, isshowfield) -VALUES (@datashowset_id, '手机号', 'mobile', '2', '', 2, uuid(), ''); \ No newline at end of file +VALUES ((select max(id) from datasearchparam), '手机号', 'mobile', '2', '', 2, uuid(), ''); \ No newline at end of file diff --git a/src/com/engine/salary/action/FileSalaryAcctRecordAction.java b/src/com/engine/salary/action/FileSalaryAcctRecordAction.java new file mode 100644 index 000000000..7d6d22fb7 --- /dev/null +++ b/src/com/engine/salary/action/FileSalaryAcctRecordAction.java @@ -0,0 +1,70 @@ +package com.engine.salary.action; + +import com.engine.common.util.ServiceUtil; +import com.engine.salary.mapper.taxagent.TaxAgentMapper; +import com.engine.salary.service.SalaryAcctRecordService; +import com.engine.salary.service.impl.SalaryAcctRecordServiceImpl; +import com.engine.salary.util.db.MapperProxyFactory; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.interfaces.workflow.action.Action; +import weaver.soa.workflow.request.Property; +import weaver.soa.workflow.request.RequestInfo; + +import java.util.Arrays; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * @author Harryxzy + * @ClassName FileSalaryAcctRecordAction + * @date 2023/12/13 9:17 + * @description 钖祫鏍哥畻璁板綍褰掓。action + */ +@Slf4j +public class FileSalaryAcctRecordAction implements Action { + + + private SalaryAcctRecordService getSalaryAcctRecordService(User user) { + return ServiceUtil.getService(SalaryAcctRecordServiceImpl.class, user); + } + + private TaxAgentMapper getTaxAgentMapper() { + return MapperProxyFactory.getProxy(TaxAgentMapper.class); + } + + + private String recordIdFieldName; + + + public String getRecordIdFieldName() { + return recordIdFieldName; + } + + public void setRecordIdFieldName(String recordIdFieldName) { + this.recordIdFieldName = recordIdFieldName; + } + + @Override + public String execute(RequestInfo requestInfo) { + Property[] properties = requestInfo.getMainTableInfo().getProperty(); + Map fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName, + property -> Util.null2String(property.getValue()))); + String salaryAcctRecordId = fieldMap.get(recordIdFieldName); + if (StringUtils.isBlank(salaryAcctRecordId)) { + requestInfo.getRequestManager().setMessage("钖祫鏍哥畻璁板綍涓嶅瓨鍦"); + return FAILURE_AND_CONTINUE; + } + User user = new User(); + user.setUid(1); + try { + getSalaryAcctRecordService(user).file(Long.valueOf(salaryAcctRecordId)); + } catch (Exception e) { + requestInfo.getRequestManager().setMessage(e.getMessage()); + return FAILURE_AND_CONTINUE; + } + return SUCCESS; + } +} diff --git a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctResultBO.java b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctResultBO.java index d736bf37f..392ac81e6 100644 --- a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctResultBO.java +++ b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctResultBO.java @@ -23,6 +23,7 @@ import com.engine.salary.enums.salaryaccounting.LockStatusEnum; import com.engine.salary.enums.salaryitem.SalaryDataTypeEnum; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; +import com.engine.salary.util.page.SalaryPageUtil; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import org.apache.commons.collections4.CollectionUtils; @@ -85,7 +86,6 @@ public class SalaryAcctResultBO { // } - /** * 鏋勫缓钖祫鏍哥畻缁撴灉鍒楄〃鐨勮〃澶达紙绾夸笅瀵规瘮锛 * @@ -170,7 +170,7 @@ public class SalaryAcctResultBO { List columns = Lists.newArrayList(); // 鍛樺伐淇℃伅瀛楁 for (SalarySobEmpFieldDTO salarySobEmpFieldDTO : salarySobItemAggregateDTO.getEmpFields()) { - columns.add(new WeaTableColumnGroup("150", salarySobEmpFieldDTO.getFieldName(), salarySobEmpFieldDTO.getFieldId())); + columns.add(new WeaTableColumnGroup(SalaryPageUtil.selfAdaption(salarySobEmpFieldDTO.getFieldName()), salarySobEmpFieldDTO.getFieldName(), salarySobEmpFieldDTO.getFieldId())); } // 钖祫椤圭洰鍒嗙粍涓嬬殑钖祫椤圭洰 for (SalarySobItemGroupDTO salarySobItemGroupDTO : salarySobItemAggregateDTO.getItemGroups()) { @@ -180,29 +180,29 @@ public class SalaryAcctResultBO { List childrenColumns = Lists.newArrayList(); for (SalarySobItemDTO salarySobItemDTO : salarySobItemGroupDTO.getItems()) { if (lockSalaryItemIds.contains(salarySobItemDTO.getSalaryItemId())) { - childrenColumns.add(new WeaTableColumnGroup("150", salarySobItemDTO.getName(), "" + salarySobItemDTO.getSalaryItemId(), LockStatusEnum.LOCK.getValue(), salarySobItemDTO.getPattern())); + childrenColumns.add(new WeaTableColumnGroup(SalaryPageUtil.selfAdaption(salarySobItemDTO.getName()), salarySobItemDTO.getName(), "" + salarySobItemDTO.getSalaryItemId(), LockStatusEnum.LOCK.getValue(), salarySobItemDTO.getPattern())); } else { - childrenColumns.add(new WeaTableColumnGroup("150", salarySobItemDTO.getName(), "" + salarySobItemDTO.getSalaryItemId(), LockStatusEnum.UNLOCK.getValue(), salarySobItemDTO.getPattern())); + childrenColumns.add(new WeaTableColumnGroup(SalaryPageUtil.selfAdaption(salarySobItemDTO.getName()), salarySobItemDTO.getName(), "" + salarySobItemDTO.getSalaryItemId(), LockStatusEnum.UNLOCK.getValue(), salarySobItemDTO.getPattern())); } } - WeaTableColumnGroup weaTableColumnWapper = new WeaTableColumnGroup("150", salarySobItemGroupDTO.getName(), String.valueOf(salarySobItemGroupDTO.getId()), childrenColumns); + WeaTableColumnGroup weaTableColumnWapper = new WeaTableColumnGroup(SalaryPageUtil.selfAdaption(salarySobItemGroupDTO.getName()), salarySobItemGroupDTO.getName(), String.valueOf(salarySobItemGroupDTO.getId()), childrenColumns); columns.add(weaTableColumnWapper); } // 娌℃湁鍒嗙被鐨勮柂璧勯」鐩 for (SalarySobItemDTO salarySobItemDTO : salarySobItemAggregateDTO.getItems()) { if (lockSalaryItemIds.contains(salarySobItemDTO.getSalaryItemId())) { - columns.add(new WeaTableColumnGroup("150", salarySobItemDTO.getName(), "" + salarySobItemDTO.getSalaryItemId(), LockStatusEnum.LOCK.getValue(), salarySobItemDTO.getPattern())); + columns.add(new WeaTableColumnGroup(SalaryPageUtil.selfAdaption(salarySobItemDTO.getName()), salarySobItemDTO.getName(), "" + salarySobItemDTO.getSalaryItemId(), LockStatusEnum.LOCK.getValue(), salarySobItemDTO.getPattern())); } else { - columns.add(new WeaTableColumnGroup("150", salarySobItemDTO.getName(), "" + salarySobItemDTO.getSalaryItemId(), LockStatusEnum.UNLOCK.getValue(), salarySobItemDTO.getPattern())); + columns.add(new WeaTableColumnGroup(SalaryPageUtil.selfAdaption(salarySobItemDTO.getName()), salarySobItemDTO.getName(), "" + salarySobItemDTO.getSalaryItemId(), LockStatusEnum.UNLOCK.getValue(), salarySobItemDTO.getPattern())); } } // 鍥炵畻鐨勮柂璧勯」鐩 for (SalarySobItemDTO salarySobItemDTO : salarySobItemAggregateDTO.getBackCalcItems()) { if (lockSalaryItemIds.contains(salarySobItemDTO.getSalaryItemId())) { - columns.add(new WeaTableColumnGroup("150", salarySobItemDTO.getName(), "" + salarySobItemDTO.getSalaryItemId(), LockStatusEnum.LOCK.getValue(), salarySobItemDTO.getPattern())); + columns.add(new WeaTableColumnGroup(SalaryPageUtil.selfAdaption(salarySobItemDTO.getName()), salarySobItemDTO.getName(), "" + salarySobItemDTO.getSalaryItemId(), LockStatusEnum.LOCK.getValue(), salarySobItemDTO.getPattern())); } else { - columns.add(new WeaTableColumnGroup("150", salarySobItemDTO.getName(), "" + salarySobItemDTO.getSalaryItemId(), LockStatusEnum.UNLOCK.getValue(), salarySobItemDTO.getPattern())); + columns.add(new WeaTableColumnGroup(SalaryPageUtil.selfAdaption(salarySobItemDTO.getName()), salarySobItemDTO.getName(), "" + salarySobItemDTO.getSalaryItemId(), LockStatusEnum.UNLOCK.getValue(), salarySobItemDTO.getPattern())); } } @@ -442,9 +442,9 @@ public class SalaryAcctResultBO { sortItem(salarySobItemPOMap); // 鏍规嵁璐﹀鍒嗙粍灏佽钖祫椤圭洰鐨勫 List itemsByGroup = new ArrayList<>(); - for(SalarySobItemGroupPO groupPO : salarySobItemGroupPOS){ - List groupItems = salarySobItemPOMap.getOrDefault(groupPO.getId(),Collections.emptyList()); - if(CollectionUtils.isNotEmpty(groupItems)){ + for (SalarySobItemGroupPO groupPO : salarySobItemGroupPOS) { + List groupItems = salarySobItemPOMap.getOrDefault(groupPO.getId(), Collections.emptyList()); + if (CollectionUtils.isNotEmpty(groupItems)) { List items = groupItems.stream() .map(salarySobItemPO -> convert2SalaryAcctResultDetailItemDTO(salarySobItemPO, salaryItemMap.get(salarySobItemPO.getSalaryItemId()), resultValueMap, formulaContentMap)) .collect(Collectors.toList()); @@ -452,12 +452,12 @@ public class SalaryAcctResultBO { .salarySobItemGroupId(groupPO.getId()) .salarySobItemGroupName(groupPO.getName()) .salaryItems(items) - .sortedIndex(groupPO.getSortedIndex()).build() ); + .sortedIndex(groupPO.getSortedIndex()).build()); } } // 鏈垎绫 List noGroupItems = salarySobItemPOMap.getOrDefault(0L, Collections.emptyList()); - if(CollectionUtils.isNotEmpty(noGroupItems)){ + if (CollectionUtils.isNotEmpty(noGroupItems)) { List items = noGroupItems.stream() .map(salarySobItemPO -> convert2SalaryAcctResultDetailItemDTO(salarySobItemPO, salaryItemMap.get(salarySobItemPO.getSalaryItemId()), resultValueMap, formulaContentMap)) .collect(Collectors.toList()); @@ -469,7 +469,6 @@ public class SalaryAcctResultBO { } - // // 鍏紡椤圭殑鍊硷紙涓嶆牴鎹畇alaryItemPO鐨剉alueType鍒ゆ柇鏄洜涓鸿柂璧勯」鐩殑valueType灞炴ф敼鍙樺悗骞朵笉浼氬悓姝ユ洿鏂拌柂璧勮处濂椾腑鐨勮柂璧勯」鐩殑formulaId瀛楁锛 // List formulaItems = salarySobItemPOS.stream() // .filter(salarySobItemPO -> salarySobItemPO.getFormulaId() > 0) @@ -500,7 +499,7 @@ public class SalaryAcctResultBO { } public static List sortGroup(List salarySobItemGroupPOS) { - if(CollectionUtils.isEmpty(salarySobItemGroupPOS)){ + if (CollectionUtils.isEmpty(salarySobItemGroupPOS)) { return Collections.emptyList(); } return salarySobItemGroupPOS.stream().sorted(Comparator.comparingInt(SalarySobItemGroupPO::getSortedIndex)).collect(Collectors.toList()); @@ -508,10 +507,9 @@ public class SalaryAcctResultBO { /** * 钖祫璐﹀鐨勮柂璧勯」鐩寜鐓ortedIndex鎺掑簭 - * */ public static void sortItem(Map> salarySobItemPOMap) { - for(Map.Entry> entry : salarySobItemPOMap.entrySet()){ + for (Map.Entry> entry : salarySobItemPOMap.entrySet()) { List items = entry.getValue(); if (CollectionUtils.isNotEmpty(items)) { List sortedValue = items.stream().sorted(Comparator.comparingInt(SalarySobItemPO::getSortedIndex)).collect(Collectors.toList()); @@ -535,9 +533,9 @@ public class SalaryAcctResultBO { SalaryValueTypeEnum salaryValueTypeEnum = SalaryValueTypeEnum.parseByValue(Optional.ofNullable(salarySobItemPO).map(SalarySobItemPO::getValueType).orElse(0)); String itemFormulaContent; - if(Objects.equals(salaryValueTypeEnum.getValue(),SalaryValueTypeEnum.FORMULA.getValue())){ + if (Objects.equals(salaryValueTypeEnum.getValue(), SalaryValueTypeEnum.FORMULA.getValue())) { itemFormulaContent = Optional.ofNullable(formulaContentMap.get(salarySobItemPO.getSalaryItemId().toString())).map(SalaryAcctResultListColumnDTO::getFormulaContent).orElse(""); - }else{ + } else { itemFormulaContent = salaryValueTypeEnum == null ? "" : salaryValueTypeEnum.getDefaultLabel(); } diff --git a/src/com/engine/salary/entity/salaryitem/param/SalaryItemSaveParam.java b/src/com/engine/salary/entity/salaryitem/param/SalaryItemSaveParam.java index a2c6fa84b..916342dfd 100644 --- a/src/com/engine/salary/entity/salaryitem/param/SalaryItemSaveParam.java +++ b/src/com/engine/salary/entity/salaryitem/param/SalaryItemSaveParam.java @@ -63,7 +63,7 @@ public class SalaryItemSaveParam { private Integer roundingMode; //淇濈暀灏忔暟浣 - @DataCheck(require = true, type = ValidTypeEnum.NUMBER, max = 6, message = "灏忔暟浣嶆渶澶氫负6") + @DataCheck(require = true, type = ValidTypeEnum.NUMBER, max = 8, message = "灏忔暟浣嶆渶澶氫负8") private Integer pattern; /** diff --git a/src/com/engine/salary/entity/salarysob/bo/SalarySobItemAggregateBO.java b/src/com/engine/salary/entity/salarysob/bo/SalarySobItemAggregateBO.java index 2014bf2b8..be5bcf6c3 100644 --- a/src/com/engine/salary/entity/salarysob/bo/SalarySobItemAggregateBO.java +++ b/src/com/engine/salary/entity/salarysob/bo/SalarySobItemAggregateBO.java @@ -14,6 +14,7 @@ import com.engine.salary.util.SalaryI18nUtil; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import lombok.AllArgsConstructor; +import lombok.NoArgsConstructor; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.NumberUtils; @@ -32,6 +33,7 @@ import java.util.stream.Collectors; * @version 1.0 **/ @AllArgsConstructor +@NoArgsConstructor public class SalarySobItemAggregateBO { /** @@ -206,7 +208,7 @@ public class SalarySobItemAggregateBO { * @param salarySobEmpFields 钖祫璐﹀鐨勫憳宸ヤ俊鎭瓧娈 * @return */ - private List buildEmpField(Collection salarySobEmpFields) { + public List buildEmpField(Collection salarySobEmpFields) { if (CollectionUtils.isEmpty(salarySobEmpFields)) { return Collections.emptyList(); } diff --git a/src/com/engine/salary/entity/salarysob/dto/SalarySobItemFormDTO.java b/src/com/engine/salary/entity/salarysob/dto/SalarySobItemFormDTO.java index 240625524..f23df1512 100644 --- a/src/com/engine/salary/entity/salarysob/dto/SalarySobItemFormDTO.java +++ b/src/com/engine/salary/entity/salarysob/dto/SalarySobItemFormDTO.java @@ -53,7 +53,7 @@ public class SalarySobItemFormDTO { private Integer roundingMode; //淇濈暀灏忔暟浣") - @DataCheck(require = true, type = ValidTypeEnum.NUMBER, max = 6, message = "灏忔暟浣嶆渶澶氫负6") + @DataCheck(require = true, type = ValidTypeEnum.NUMBER, max = 8, message = "灏忔暟浣嶆渶澶氫负8") private Integer pattern; //鍙栧兼柟寮") diff --git a/src/com/engine/salary/report/service/impl/SalaryStatisticsItemServiceImpl.java b/src/com/engine/salary/report/service/impl/SalaryStatisticsItemServiceImpl.java index 6468f3f4b..ab3600c5e 100644 --- a/src/com/engine/salary/report/service/impl/SalaryStatisticsItemServiceImpl.java +++ b/src/com/engine/salary/report/service/impl/SalaryStatisticsItemServiceImpl.java @@ -116,10 +116,10 @@ public class SalaryStatisticsItemServiceImpl extends Service implements SalarySt .maxRule(SalaryEntityUtil.toJSONString(saveParam.getMaxRule())) .minRule(SalaryEntityUtil.toJSONString(saveParam.getMinRule())) .medianRule(SalaryEntityUtil.toJSONString(saveParam.getMedianRule())) - .lastRule(SalaryEntityUtil.toJSONString(saveParam.getMedianRule())) - .oldRule(SalaryEntityUtil.toJSONString(saveParam.getMedianRule())) - .frequentRule(SalaryEntityUtil.toJSONString(saveParam.getMedianRule())) - .tileRule(SalaryEntityUtil.toJSONString(saveParam.getMedianRule())) + .lastRule(SalaryEntityUtil.toJSONString(saveParam.getLastRule())) + .oldRule(SalaryEntityUtil.toJSONString(saveParam.getOldRule())) + .frequentRule(SalaryEntityUtil.toJSONString(saveParam.getFrequentRule())) + .tileRule(SalaryEntityUtil.toJSONString(saveParam.getTileRule())) .indexValue(max + 1) .statReportId(saveParam.getStatReportId()) .unitType(saveParam.getUnitType() == null ? UnitTypeEnum.YUAN.getValue() : saveParam.getUnitType()) diff --git a/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java b/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java index c71f5193c..4bb650f92 100644 --- a/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java +++ b/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java @@ -352,7 +352,7 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary po.setCreator(uid); po.setCreateTime(now); po.setUpdateTime(now); - po.setReportName(po.getReportName()+"_copy"); + po.setReportName(po.getReportName() + "_copy"); getSalaryStatisticsReportMapper().insertIgnoreNull(po); @@ -414,11 +414,21 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary param.setSalaryStartMonth(SalaryDateUtil.getFormatYearMonth(reportPO.getSalaryStartMonth())); param.setSalaryEndMonth(SalaryDateUtil.getFormatYearMonth(reportPO.getSalaryEndMonth())); String key = "id"; - param.setTaxAgent(((List) JSON.parseArray(reportPO.getTaxAgentSetting(), Map.class)).stream().map(m -> Long.valueOf(m.get(key).toString())).collect(Collectors.toList())); - param.setSubCompany(((List) JSON.parseArray(reportPO.getSubCompanySetting(), Map.class)).stream().map(m -> Long.valueOf(m.get(key).toString())).collect(Collectors.toList())); - param.setDepart(((List) JSON.parseArray(reportPO.getDepartSetting(), Map.class)).stream().map(m -> Long.valueOf(m.get(key).toString())).collect(Collectors.toList())); - param.setEmployee(((List) JSON.parseArray(reportPO.getEmployeeSetting(), Map.class)).stream().map(m -> Long.valueOf(m.get(key).toString())).collect(Collectors.toList())); - param.setHiredate(JSON.parseArray(reportPO.getHiredateSetting(), Date.class)); + if (reportPO.getTaxAgentSetting() != null) { + param.setTaxAgent(((List) JSON.parseArray(reportPO.getTaxAgentSetting(), Map.class)).stream().map(m -> Long.valueOf(m.get(key).toString())).collect(Collectors.toList())); + } + if (reportPO.getSubCompanySetting() != null) { + param.setSubCompany(((List) JSON.parseArray(reportPO.getSubCompanySetting(), Map.class)).stream().map(m -> Long.valueOf(m.get(key).toString())).collect(Collectors.toList())); + } + if (reportPO.getDepartSetting() != null) { + param.setDepart(((List) JSON.parseArray(reportPO.getDepartSetting(), Map.class)).stream().map(m -> Long.valueOf(m.get(key).toString())).collect(Collectors.toList())); + } + if (reportPO.getEmployeeSetting() != null) { + param.setEmployee(((List) JSON.parseArray(reportPO.getEmployeeSetting(), Map.class)).stream().map(m -> Long.valueOf(m.get(key).toString())).collect(Collectors.toList())); + } + if (reportPO.getHiredateSetting() != null) { + param.setHiredate(JSON.parseArray(reportPO.getHiredateSetting(), Date.class)); + } SalaryStatisticsReportDataQueryParam queryParam = new SalaryStatisticsReportDataQueryParam(); com.mzlion.core.utils.BeanUtils.copyProperties(param, queryParam); // 鑾峰彇鏈湡鎶ヨ〃鍒嗘潈鍚庣殑鏍哥畻浜哄憳 @@ -1062,7 +1072,7 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary List fieldSettings = Optional.ofNullable(Optional.ofNullable(employeeInfoExpandDTO).orElse(new EmployeeInfoExpandDTO()).getFieldSettings()).orElse(new ArrayList<>()); Map> expandEmployeeMap = getSalaryEmployeeService(user).expandEmployeeMap(empIds, employeeInfoExpandDTO); - log.info("鎵╁睍灞炴"+expandEmployeeMap); + log.info("鎵╁睍灞炴" + expandEmployeeMap); // List extEmployees = extEmployeeService.listByIdsWithDeleted(accountDetailPOList.stream().filter(e -> EmployeeTypeEnum.EXT_EMPLOYEE.getValue().equals(e.getEmployeeType())).map(SalaryAcctEmployeePO::getEmployeeId).distinct().collect(Collectors.toList()), data.getTenantKey()); // Map employeeExtByIdMap = SalaryEntityUtil.convert2Map(extEmployees, ExtEmployeePO::getId, ExtEmployeePO::getUsername); @@ -1075,7 +1085,7 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary temp.put(DM, employeeByIdMap.get(k).getUsername()); fieldSettings.forEach( fieldSetting -> { - temp.put(fieldSetting.getField(), expandEmployeeMap.getOrDefault(k,new HashMap<>()).get(fieldSetting.getField())); + temp.put(fieldSetting.getField(), expandEmployeeMap.getOrDefault(k, new HashMap<>()).get(fieldSetting.getField())); } ); temp.putAll(SalaryStatisticsReportBO.calculateItem(v, lastEmployeeListMap.get(k), sameEmployeeListMap.get(k), salaryAcctResultValueMap, data.getSalaryStatisticsItemList())); diff --git a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java index 11f239225..8840d9302 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java @@ -18,9 +18,9 @@ import com.engine.salary.entity.salaryacct.dto.SalaryComparisonResultListDTO; import com.engine.salary.entity.salaryacct.param.*; import com.engine.salary.entity.salaryacct.po.*; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; +import com.engine.salary.entity.salarysob.bo.SalarySobItemAggregateBO; +import com.engine.salary.entity.salarysob.dto.SalarySobEmpFieldDTO; import com.engine.salary.entity.salarysob.dto.SalarySobItemAggregateDTO; -import com.engine.salary.entity.salarysob.dto.SalarySobItemDTO; -import com.engine.salary.entity.salarysob.dto.SalarySobItemGroupDTO; import com.engine.salary.entity.salarysob.po.SalarySobEmpFieldPO; import com.engine.salary.entity.salarysob.po.SalarySobItemGroupPO; import com.engine.salary.entity.salarysob.po.SalarySobItemPO; @@ -670,19 +670,22 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc parseHeader(headerColumnGroup, finalWeaTableColumns); List headerList = new ArrayList<>(finalWeaTableColumns); - // 鏌ヨ钖祫鏍哥畻缁撴灉 - List> resultMapList = getSalaryAcctResultService(user).listByParam(param); // excel瀵煎嚭鐨勬暟鎹 List> rows = new ArrayList<>(); rows.add(headerList); - for (Map map : resultMapList) { - List row = Lists.newArrayListWithExpectedSize(headerColumnGroup.size()); - for (WeaTableColumnGroup weaTableColumn : headerColumnGroup) { - row.add(map.getOrDefault(weaTableColumn.getColumn(), StringUtils.EMPTY)); + if (param.getImportType() != null && param.getImportType().equals("true")) { + // 闇瑕佸鍑虹幇鏈夋暟鎹紝鏌ヨ钖祫鏍哥畻缁撴灉 + List> resultMapList = getSalaryAcctResultService(user).listByParam(param); + for (Map map : resultMapList) { + List row = Lists.newArrayListWithExpectedSize(headerColumnGroup.size()); + for (WeaTableColumnGroup weaTableColumn : headerColumnGroup) { + row.add(map.getOrDefault(weaTableColumn.getColumn(), StringUtils.EMPTY)); + } + rows.add(row); } - rows.add(row); } + String sheetName = "钖祫鏍哥畻瀵煎叆妯℃澘"; return ExcelUtilPlus.genWorkbookWithChildTitleColumn(rows, sheetName, false); } @@ -784,12 +787,12 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc if (Objects.isNull(salaryAcctRecordPO)) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98747, "钖祫鏍哥畻璁板綍涓嶅瓨鍦ㄦ垨宸茶鍒犻櫎")); } - // 妯℃澘琛ㄥご(榛樿蹇呭甫"涓◣鎵g即涔夊姟浜"銆"濮撳悕") - List headerList = Lists.newArrayList(SalaryI18nUtil.getI18nLabel(85429, "濮撳悕"), SalaryI18nUtil.getI18nLabel(86184, "涓◣鎵g即涔夊姟浜")); - //瀹氫綅浜哄憳甯︹滈儴闂ㄢ濓紝鈥滄墜鏈哄彿鈥濓紝鈥滃伐鍙封 - headerList.add("閮ㄩ棬"); - headerList.add("鎵嬫満鍙"); - headerList.add("宸ュ彿"); + // // 妯℃澘琛ㄥご(榛樿蹇呭甫"涓◣鎵g即涔夊姟浜"銆"濮撳悕") + // List headerList = Lists.newArrayList(SalaryI18nUtil.getI18nLabel(85429, "濮撳悕"), SalaryI18nUtil.getI18nLabel(86184, "涓◣鎵g即涔夊姟浜")); + // //瀹氫綅浜哄憳甯︹滈儴闂ㄢ濓紝鈥滄墜鏈哄彿鈥濓紝鈥滃伐鍙封 + // headerList.add("閮ㄩ棬"); + // headerList.add("鎵嬫満鍙"); + // headerList.add("宸ュ彿"); // 鏌ヨ钖祫璐﹀涓嬬殑钖祫椤圭洰 SalarySobItemAggregateDTO salarySobItemAggregateDTO = getSalarySobItemService(user).getAggregateBySalarySobId(salaryAcctRecordPO.getSalarySobId()); @@ -804,16 +807,16 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc // } // // } - // 钖祫椤圭洰鍒嗙被涓嬬殑鏂拌祫椤圭洰 - for (SalarySobItemGroupDTO itemGroup : salarySobItemAggregateDTO.getItemGroups()) { - for (SalarySobItemDTO item : itemGroup.getItems()) { - headerList.add(item.getName()); - } - } - // 娌℃湁鍒嗙被鐨勮柂璧勯」鐩 - for (SalarySobItemDTO item : salarySobItemAggregateDTO.getItems()) { - headerList.add(item.getName()); - } +// // 钖祫椤圭洰鍒嗙被涓嬬殑鏂拌祫椤圭洰 +// for (SalarySobItemGroupDTO itemGroup : salarySobItemAggregateDTO.getItemGroups()) { +// for (SalarySobItemDTO item : itemGroup.getItems()) { +// headerList.add(item.getName()); +// } +// } +// // 娌℃湁鍒嗙被鐨勮柂璧勯」鐩 +// for (SalarySobItemDTO item : salarySobItemAggregateDTO.getItems()) { +// headerList.add(item.getName()); +// } // 鏃犲垎绫昏柂璧勯」鐩甶d @@ -821,11 +824,10 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc // 鏌ヨ鍒楄〃鐨勮〃澶 List weaTableColumns = listWeaTableColumn(salaryAcctRecordPO); List finalWeaTableColumns = new ArrayList<>(); - finalWeaTableColumns.add(new WeaTableColumnGroup("150", SalaryI18nUtil.getI18nLabel(85429, "濮撳悕"), SalaryI18nUtil.getI18nLabel(85429, "濮撳悕"))); - finalWeaTableColumns.add(new WeaTableColumnGroup("150", SalaryI18nUtil.getI18nLabel(86184, "涓◣鎵g即涔夊姟浜"), SalaryI18nUtil.getI18nLabel(86184, "涓◣鎵g即涔夊姟浜"))); - finalWeaTableColumns.add(new WeaTableColumnGroup("150", "閮ㄩ棬", "閮ㄩ棬")); - finalWeaTableColumns.add(new WeaTableColumnGroup("150", "鎵嬫満鍙", "鎵嬫満鍙")); - finalWeaTableColumns.add(new WeaTableColumnGroup("150", "宸ュ彿", "宸ュ彿")); + // 鏌ヨ钖祫鏍哥畻鎵鐢ㄧ殑钖祫璐﹀鐨勫憳宸ヤ俊鎭瓧娈 + List salarySobEmpFieldPOS = getSalarySobEmpFieldService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId()); + List salarySobEmpFieldDTOS = new SalarySobItemAggregateBO().buildEmpField(salarySobEmpFieldPOS); + salarySobEmpFieldDTOS.stream().forEach(empField -> finalWeaTableColumns.add(new WeaTableColumnGroup("150", SalaryI18nUtil.getI18nLabel(0, empField.getFieldName()), SalaryI18nUtil.getI18nLabel(0, empField.getFieldName())))); for (WeaTableColumnGroup tableColumn : weaTableColumns) { WeaTableColumnGroup columnGroupItem = (WeaTableColumnGroup) tableColumn; if (columnGroupItem.getChildren() != null) { @@ -869,7 +871,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc fileInputStream = ImageFileManager.getInputStreamById(Integer.parseInt(param.getImageId())); Sheet sheet = ExcelSupport.parseFile(fileInputStream, 0, EXCEL_TYPE_XLSX); map.put("headers", ExcelSupport.getSheetHeader(sheet, 1)); - map.put("list", ExcelParseHelper.parse2List(sheet, 2)); + map.put("list", ExcelParseHelper.parse2List(sheet, 2, 1)); return map; } finally { @@ -944,7 +946,11 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc // 绉熸埛涓嬫墍鏈夌殑涓◣鎵g即涔夊姟浜 List taxAgents = getTaxAgentService(user).listAll(); Map taxAgentNameMap = SalaryEntityUtil.convert2Map(taxAgents, TaxAgentPO::getName, TaxAgentPO::getId); - + // 钖祫鏍哥畻浜哄憳淇℃伅瀛楁 + List salarySobEmpFieldPOS = getSalarySobEmpFieldService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId()); + List salarySobEmpFields = SalaryEntityUtil.properties(new SalarySobItemAggregateBO().buildEmpField(salarySobEmpFieldPOS), SalarySobEmpFieldDTO::getFieldName, Collectors.toList()); + List excludeFields = Arrays.asList("涓◣鎵g即涔夊姟浜", "閮ㄩ棬", "濮撳悕"); + salarySobEmpFields = salarySobEmpFields.stream().filter(field -> !excludeFields.contains(field)).collect(Collectors.toList()); // 绱㈠紩(鐢ㄤ簬璁$畻杩涘害) int index = 0; // 澶辫触鐨勬暟閲 @@ -1066,7 +1072,9 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc } } else if (StringUtils.equals(SalaryI18nUtil.getI18nLabel(86184, "閮ㄩ棬"), dataKey.toString()) || StringUtils.equals(SalaryI18nUtil.getI18nLabel(86186, "鎵嬫満鍙"), dataKey.toString()) - || StringUtils.equals(SalaryI18nUtil.getI18nLabel(86186, "宸ュ彿"), dataKey.toString())) { + || StringUtils.equals(SalaryI18nUtil.getI18nLabel(86186, "宸ュ彿"), dataKey.toString()) + || salarySobEmpFields.contains(dataKey.toString()) + ) { } else if (StringUtils.equals(SalaryI18nUtil.getI18nLabel(86184, "涓◣鎵g即涔夊姟浜"), dataKey.toString())) { if (StringUtils.isEmpty(dataValue)) { diff --git a/src/com/engine/salary/util/page/SalaryPageUtil.java b/src/com/engine/salary/util/page/SalaryPageUtil.java index 201dd799f..536cc9c3c 100644 --- a/src/com/engine/salary/util/page/SalaryPageUtil.java +++ b/src/com/engine/salary/util/page/SalaryPageUtil.java @@ -39,8 +39,8 @@ public class SalaryPageUtil { return pageInfo; } - public static PageInfo buildPage(Integer pageNo, Integer pageSize,List totalCollection) { - PageInfo pageInfo = new PageInfo<>(); + public static PageInfo buildPage(Integer pageNo, Integer pageSize, List totalCollection) { + PageInfo pageInfo = new PageInfo<>(); pageInfo.setTotal(totalCollection.size()); totalCollection = subList(pageNo, pageSize, totalCollection); pageInfo.setPageNum(pageNo); @@ -93,6 +93,18 @@ public class SalaryPageUtil { endIndex > source.size() ? source.size() : endIndex); } + public static String selfAdaption(String chars) { + int adaption = 0; + + if (chars != null) { + adaption = chars.length() * 12 + 55; + } + if (adaption < 79) { + adaption = 79; + } + return adaption + ""; + } + public static List convertList(List columns){ if(CollectionUtils.isNotEmpty(columns)){