Kaynağa Gözat

Merge branch 'master' of http://111.75.220.136:10030/turborao/jyyy

lisheng 3 gün önce
ebeveyn
işleme
972c9e58a6

+ 3 - 0
code/jyyy/nckd-jimin-jyyy-fi/src/main/java/nckd/jimin/jyyy/fi/common/FinanceCommonUtils.java

@@ -8,6 +8,7 @@ import kd.bos.orm.query.QFilter;
 import kd.bos.servicehelper.BusinessDataServiceHelper;
 import kd.fi.fa.business.constants.BdUser;
 
+import java.math.BigDecimal;
 import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
@@ -120,6 +121,8 @@ public class FinanceCommonUtils {
             qFilter.and(new QFilter("billstatus", QCP.not_in, new String[]{"E","F"}));
             //哺乳假不参与校验
             qFilter.and(new QFilter("entryentity.entryvacationtype.number", QCP.not_equals2, "1090_S"));
+            //申请时长大于0
+            qFilter.and(new QFilter("entryentity.entryvatimehour", QCP.large_than, BigDecimal.ZERO));
 
             prefix = "entryentity.";
             startField = "entrystartdate";

+ 34 - 12
code/jyyy/nckd-jimin-jyyy-fi/src/main/java/nckd/jimin/jyyy/fi/webapi/SRMSynPayApiPlugin.java

@@ -207,10 +207,14 @@ public class SRMSynPayApiPlugin implements Serializable {
             returnMessage = ("".equals(returnMessage) ? "" : ",") + "制单人 不能为空";
         }
 
-        if( StringUtils.isEmpty(applier)){
+        if(StringUtils.isEmpty(applier)){
             returnMessage = ("".equals(returnMessage) ? "" : ",") + "经办人 不能为空";
         }
 
+        if(StringUtils.isEmpty(u8Org)){
+            returnMessage = ("".equals(returnMessage) ? "" : ",") + "u8组织 不能为空";
+        }
+
         if("XM".equals(billType)){
             if(StringUtils.isEmpty(project)){
                 returnMessage = ("".equals(returnMessage) ? "" : ",") + "项目类付款 项目编码 不能为空";
@@ -265,13 +269,20 @@ public class SRMSynPayApiPlugin implements Serializable {
         DynamicObject adminCompany = CommonHelperUtils.getAdminCompany(dept);
 
         QFilter qFilter = new QFilter("toorg", QCP.equals, dept.getPkValue());
-        DynamicObject relation = BusinessDataServiceHelper.loadSingle("bos_org_orgrelation_dept", qFilter.toArray());
-        if(relation == null){
-            returnMessage = "行政组织(" + dept.getString("number") + ", " + dept.getString("name") + ")在星瀚系统未维护委托业务单元!";
+//        DynamicObject relation = BusinessDataServiceHelper.loadSingle("bos_org_orgrelation_dept", qFilter.toArray());
+//        if(relation == null){
+//            returnMessage = "行政组织(" + dept.getString("number") + ", " + dept.getString("name") + ")在星瀚系统未维护委托业务单元!";
+//            return buildReturnData(code, srmBillNo, returnMessage, null, null, null);
+//        }
+        //费用承担公司 改成取u8组织
+//        DynamicObject costCompany = relation.getDynamicObject("fromorg");
+
+        DynamicObject costCompany = CommonHelperUtils.queryBaseDynamicObject("bos_org", "name", u8Org);
+        if(costCompany == null){
+            returnMessage = "u8组织(" + u8Org + ")在星瀚系统中未匹配到数据!";
             return buildReturnData(code, srmBillNo, returnMessage, null, null, null);
         }
-        //费用承担公司
-        DynamicObject costCompany = relation.getDynamicObject("fromorg");
+
         //汇率表Id
         Long exchangeTableId = CommonHelperUtils.getExchageTableId(costCompany.getLong("id"));
 
@@ -417,7 +428,7 @@ public class SRMSynPayApiPlugin implements Serializable {
 
                     projectInfo = BusinessDataServiceHelper.loadSingle("bd_project", projectFilter.toArray());
                     if (projectInfo == null) {
-                        returnMessage = "项目(" + xsproject + ")在星瀚系统中未匹配到数据!";
+                        returnMessage = "组织(" + costCompany.getString("name") + ")下的项目(" + xsproject + ")在星瀚系统中未匹配到数据!";
                         return buildReturnData(code, srmBillNo, returnMessage, null, null, null);
                     }
 
@@ -1070,6 +1081,10 @@ public class SRMSynPayApiPlugin implements Serializable {
             returnMessage = ("".equals(returnMessage) ? "" : ",") + "经办人 不能为空";
         }
 
+        if(StringUtils.isEmpty(u8Org)){
+            returnMessage = ("".equals(returnMessage) ? "" : ",") + "u8组织 不能为空";
+        }
+
         if(!StringUtils.isEmpty(returnMessage)){
             return buildReturnData(code, srmBillNo, returnMessage, null, null, null);
         }
@@ -1110,13 +1125,20 @@ public class SRMSynPayApiPlugin implements Serializable {
         DynamicObject adminCompany = CommonHelperUtils.getAdminCompany(dept);
 
         QFilter qFilter = new QFilter("toorg", QCP.equals, dept.getPkValue());
-        DynamicObject relation = BusinessDataServiceHelper.loadSingle("bos_org_orgrelation_dept", qFilter.toArray());
-        if(relation == null){
-            returnMessage = "行政组织(" + dept.getString("number") + ", " + dept.getString("name") + ")在星瀚系统未维护委托业务单元!";
+//        DynamicObject relation = BusinessDataServiceHelper.loadSingle("bos_org_orgrelation_dept", qFilter.toArray());
+//        if(relation == null){
+//            returnMessage = "行政组织(" + dept.getString("number") + ", " + dept.getString("name") + ")在星瀚系统未维护委托业务单元!";
+//            return buildReturnData(code, srmBillNo, returnMessage, null, null, null);
+//        }
+        //费用承担公司
+//        DynamicObject costCompany = relation.getDynamicObject("fromorg");
+
+        DynamicObject costCompany = CommonHelperUtils.queryBaseDynamicObject("bos_org", "name", u8Org);
+        if(costCompany == null){
+            returnMessage = "u8组织(" + u8Org + ")在星瀚系统中未匹配到数据!";
             return buildReturnData(code, srmBillNo, returnMessage, null, null, null);
         }
-        //费用承担公司
-        DynamicObject costCompany = relation.getDynamicObject("fromorg");
+
         //汇率表Id
         Long exchangeTableId = CommonHelperUtils.getExchageTableId(costCompany.getLong("id"));
 

+ 2 - 2
code/jyyy/nckd-jimin-jyyy-hr/src/main/java/nckd/jimin/jyyy/hr/swc/hsas/calperson/CalPersonExtService.java

@@ -44,7 +44,7 @@ public class CalPersonExtService implements IAddCalPersonExtService {
         //批量获取核算期间上月实签单位
         Map<Long, Long> aContractMap = CalPersonUtil.getAContractInfoByPersonID(personIds, endDate);
         //批量获取核算期间所属月份实签单位
-        Map<Long, Long> bContractMap = CalPersonUtil.getAContractInfoByPersonID(personIds, endDate);
+        Map<Long, Long> bContractMap = CalPersonUtil.getBContractInfoByPersonID(personIds, endDate);
         for(DynamicObject calPerson : calPersons) {
             Long salaryFileId = calPerson.getLong("salaryfile");
             DynamicObject paySettingDyn = paySettingMap.get(salaryFileId);
@@ -83,7 +83,7 @@ public class CalPersonExtService implements IAddCalPersonExtService {
         //批量获取核算期间上月实签单位
         Map<Long, Long> aContractMap = CalPersonUtil.getAContractInfoByPersonID(personIds, date);
         //批量获取核算期间所属月份实签单位
-        Map<Long, Long> bContractMap = CalPersonUtil.getAContractInfoByPersonID(personIds, date);
+        Map<Long, Long> bContractMap = CalPersonUtil.getBContractInfoByPersonID(personIds, date);
 
         for(Map<String,Object> data : datas) {
             Long personId = Long.valueOf(data.get("person.id").toString());

+ 22 - 6
code/jyyy/nckd-jimin-jyyy-hr/src/main/java/nckd/jimin/jyyy/hr/swc/hsas/util/CalPersonUtil.java

@@ -76,9 +76,17 @@ public class CalPersonUtil {
      */
     public static Map<Long, Long> getAContractInfoByPersonID (List<Long> personIds, Date date) {
         Date lastDate = getLastMonthDay(date);
-        QFilter filter = new QFilter("person.id", QCP.in, personIds);
-        filter.and("startdate", QCP.less_equals, lastDate);
-        filter.and("enddate", QCP.large_equals, lastDate);
+        //人员
+        QFilter personFilter = new QFilter("person.id", QCP.in, personIds);
+        //固定期限:
+        QFilter filter1 = new QFilter("periodtype.number", QCP.equals, "1010_S");
+        filter1.and("startdate", QCP.less_equals, lastDate);
+        filter1.and("enddate", QCP.large_equals, lastDate);
+        //无固定期限:
+        QFilter filter2 = new QFilter("periodtype.number", QCP.equals, "1020_S");
+        filter2.and("startdate", QCP.less_equals, lastDate);
+        QFilter dateFilter = filter1.or(filter2);
+        QFilter filter = personFilter.and(dateFilter);
         String selectFields = "person.id,actualsigncompany.id";
         DynamicObjectCollection contractCols = QueryServiceHelper.query(CONTRACT_ENTITY, selectFields, new QFilter[]{filter});
         //按照person.id提取
@@ -99,9 +107,17 @@ public class CalPersonUtil {
      * @return Map, k = 人员ID, v = 实签单位ID
      */
     public static Map<Long, Long> getBContractInfoByPersonID (List<Long> personIds, Date date) {
-        QFilter filter = new QFilter("person.id", QCP.in, personIds);
-        filter.and("startdate", QCP.less_equals, date);
-        filter.and("enddate", QCP.large_equals, date);
+        //人员
+        QFilter personFilter = new QFilter("person.id", QCP.in, personIds);
+        //固定期限:
+        QFilter filter1 = new QFilter("periodtype.number", QCP.equals, "1010_S");
+        filter1.and("startdate", QCP.less_equals, date);
+        filter1.and("enddate", QCP.large_equals, date);
+        //无固定期限:
+        QFilter filter2 = new QFilter("periodtype.number", QCP.equals, "1020_S");
+        filter2.and("startdate", QCP.less_equals, date);
+        QFilter dateFilter = filter1.or(filter2);
+        QFilter filter = personFilter.and(dateFilter);
         String selectFields = "person.id,actualsigncompany.id";
         DynamicObjectCollection contractCols = QueryServiceHelper.query(CONTRACT_ENTITY, selectFields, new QFilter[]{filter});
         //按照person.id提取

+ 7 - 1
code/jyyy/nckd-jimin-jyyy-hr/src/main/java/nckd/jimin/jyyy/hr/swc/print/AgentPayBillPrintPlugin.java

@@ -8,6 +8,7 @@ import kd.bos.logging.LogFactory;
 import kd.bos.orm.query.QCP;
 import kd.bos.orm.query.QFilter;
 import kd.bos.print.core.data.DataRowSet;
+import kd.bos.print.core.data.field.DateField;
 import kd.bos.print.core.data.field.TextField;
 import kd.bos.print.core.plugin.AbstractPrintPlugin;
 import kd.bos.print.core.plugin.event.BeforeLoadDataEvent;
@@ -20,6 +21,7 @@ import kd.bos.workflow.component.approvalrecord.IApprovalRecordItem;
 import kd.sdk.plugin.Plugin;
 import nckd.jimin.jyyy.hr.task.util.SyncOAUtil;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -59,8 +61,11 @@ public class AgentPayBillPrintPlugin extends AbstractPrintPlugin implements Plug
                 DynamicObject sourceAgentBill = QueryServiceHelper.queryOne(SWCAGENTBILL_ENTITY, "entryentity.paydetail", new QFilter[]{filter});
                 if(!ObjectUtils.isEmpty(sourceAgentBill)) {
                     //再获取发放明细-薪酬核算大表ID
-                    DynamicObject payDetailDyn = BusinessDataServiceHelper.loadSingle(sourceAgentBill.getLong("entryentity.paydetail"), PAYDETAIL_ENTITY);
+                    String selectFields = "payrolldate,caltableid,caltask.period.number";
+                    DynamicObject payDetailDyn = BusinessDataServiceHelper.loadSingle(sourceAgentBill.getLong("entryentity.paydetail"), PAYDETAIL_ENTITY, selectFields);
                     if(!ObjectUtils.isEmpty(payDetailDyn)) {
+                        //薪资所属年月
+                        String period = payDetailDyn.getString("caltask.period.number");
                         long calTableId = payDetailDyn.getLong("caltableid");
                         //再获取薪资审批单ID
                         QFilter filter1 = new QFilter("calentryentity.caltableid",QCP.equals,calTableId);
@@ -83,6 +88,7 @@ public class AgentPayBillPrintPlugin extends AbstractPrintPlugin implements Plug
                                     dataRowSet.put("c", new TextField(c));
                                     dataRowSet.put("d", new TextField(d));
                                     dataRowSet.put("e", new TextField(e));
+                                    dataRowSet.put("f", new TextField(period));
                                     evt.getCustomDataRows().add(dataRowSet);
                                 }
 

+ 49 - 0
code/jyyy/nckd-jimin-jyyy-hr/src/main/java/nckd/jimin/jyyy/hr/tsc/tso/formplugin/web/offer/cardinfo/OfferInfoCardPluginEx.java

@@ -0,0 +1,49 @@
+package nckd.jimin.jyyy.hr.tsc.tso.formplugin.web.offer.cardinfo;
+
+import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.dataentity.entity.DynamicObjectCollection;
+import kd.bos.entity.datamodel.IDataModel;
+import kd.bos.form.plugin.AbstractFormPlugin;
+import kd.bos.orm.query.QCP;
+import kd.bos.orm.query.QFilter;
+import kd.bos.servicehelper.QueryServiceHelper;
+import kd.sdk.plugin.Plugin;
+import kd.tsc.tso.formplugin.web.offer.AbstractOfferDynamicFramePlugin;
+import kd.tsc.tso.formplugin.web.offer.cardinfo.OfferInfoCardPlugin;
+
+import java.math.BigDecimal;
+import java.util.EventObject;
+
+/**
+ * 候选人管理-Offer卡片动态表单插件
+ * 携带二开字段
+ * Tyx
+ * 2025-07-29
+ */
+public class OfferInfoCardPluginEx extends AbstractOfferDynamicFramePlugin {
+
+    @Override
+    public void beforeBindData(EventObject e) {
+        super.beforeBindData(e);
+        IDataModel model = this.getModel();
+        int rowCount = model.getEntryRowCount("offer_entity");
+        String selectFields = "nckd_zzhnx,nckd_ncoefficient,nckd_sxqxs,nckd_sxqyx,nckd_syqxs,nckd_nzjl";
+        for(int i = 0; i < rowCount; i++) {
+            String offerNumber = model.getValue("offer_number", i).toString();
+            //获取Offer上字段
+            QFilter filter = new QFilter("number", QCP.equals, offerNumber);
+            DynamicObject offerDyn = QueryServiceHelper.queryOne("tso_somk_offerbase", selectFields, new QFilter[]{filter});
+            model.setValue("nckd_zzhnx",offerDyn.getBigDecimal("nckd_zzhnx"), i);
+            model.setValue("nckd_ncoefficient",offerDyn.getBigDecimal("nckd_ncoefficient"), i);
+            model.setValue("nckd_sxqxs",offerDyn.getBigDecimal("nckd_sxqxs"), i);
+            model.setValue("nckd_sxqyx",offerDyn.getBigDecimal("nckd_sxqyx"), i);
+            model.setValue("nckd_syqxs",offerDyn.getBigDecimal("nckd_syqxs"), i);
+            model.setValue("nckd_nzjl",offerDyn.getBigDecimal("nckd_nzjl"), i);
+        }
+    }
+
+    @Override
+    public void afterBindData(EventObject e) {
+        super.afterBindData(e);
+    }
+}