WS
2023-08-15 db11361d175266a95c4cc058f1daf25c08b7dc12
V4.0版本入库质检数据同步
已修改1个文件
已添加4个文件
357 ■■■■■ 文件已修改
src/main/java/com/fzzy/async/fzzy40/Fzzy40SyncService12.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/async/fzzy40/entity/Fz40CheckItem.java 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/async/fzzy40/entity/Fz40CheckItemKey.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/async/fzzy40/impl/Fzzy40Sync1203.java 200 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/async/fzzy40/repository/Fzzy40Sync1203Rep.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/async/fzzy40/Fzzy40SyncService12.java
@@ -3,6 +3,7 @@
import com.fzzy.api.data.ApiParam;
import com.fzzy.api.data.SyncProtocol;
import com.fzzy.api.service.SyncService12;
import com.fzzy.async.fzzy35.impl.Fzzy35Sync1203;
import com.fzzy.async.fzzy35.impl.Fzzy35Sync1208;
import com.fzzy.async.fzzy40.impl.*;
import org.springframework.beans.factory.annotation.Autowired;
@@ -27,6 +28,8 @@
    private Fzzy40Sync1212 fzzySync1212;
    @Autowired
    private Fzzy40Sync1208 fzzySync1208;
    @Autowired
    private Fzzy40Sync1203 fzzySync1203;
    @Override
    public String getProtocol() {
@@ -51,6 +54,7 @@
        fzzySync1202.syncData(kqdm, deptId, start, end);
        //粮食入库质检  TODO
        fzzySync1203.syncData(kqdm, deptId, start, end);
        //粮食入库结算  TODO
src/main/java/com/fzzy/async/fzzy40/entity/Fz40CheckItem.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,112 @@
package com.fzzy.async.fzzy40.entity;
import com.bstek.dorado.annotation.PropertyDef;
import com.fzzy.async.fzzy35.entity.Fz35CheckItemKey;
import lombok.Data;
import javax.persistence.*;
import java.io.Serializable;
/**
 * ç”¨äºŽå‡ºå…¥åº“质检详细项和日常巡检的详细项记录
 *
 * @author: andy.jia
 * @description:
 * @version:
 * @data:2020å¹´4月7日
 */
@Data
@Entity
@Table(name = "D_CHECK_ITEM")
@IdClass(Fz40CheckItemKey.class)
public class Fz40CheckItem implements Serializable {
    /**
     *
     */
    private static final long serialVersionUID = 1L;
    @Id
    @Column(name = "CHECK_ID_", length = 40)
    @PropertyDef(label = "检测编码")
    private String checkId;
    @Id
    @Column(name = "COMPANY_ID_", length = 10)
    @PropertyDef(label = "组织编码")
    private String companyId;
    @Id
    @Column(name = "STANDARD_ID_", length = 10)
    @PropertyDef(label = "检测项编码")
    private String standardId;
    @Column(name = "STANDARD_NAME_", length = 50)
    @PropertyDef(label = "化验项")
    private String standardName;
    @Column(name = "UNIT_", length = 20)
    @PropertyDef(label = "单位")
    private String unit;
    @Column(name = "UPPER_LIMIT_")
    @PropertyDef(label = "标准伐值")
    private Double upperLimit;
    @Column(name = "OPERA_SYMBOL_", length = 4)
    @PropertyDef(label = "运算符号")
    private String operaSymbol;
    @Column(name = "RULE_NUM_")
    @PropertyDef(label = "扣重系数")
    private Double ruleNum;
    @Column(name = "RULE_ADD_")
    @PropertyDef(label = "增重%")
    private Double ruleAdd;
    @Column(name = "RULE_ADD_END_")
    @PropertyDef(label = "增重上限%")
    private Double ruleAddEnd;
    @Column(name = "RULE_REDUCE_")
    @PropertyDef(label = "扣重值%")
    private Double ruleReduce;
    @Column(name = "VALUE_", length = 40)
    @PropertyDef(label = "检测值")
    private String value;
    @Column(name = "RULE_PRICE_")
    @PropertyDef(label = "扣费系数")
    private Double rulePrice;
    @Column(name = "RULE_REDUCE_PRICE_")
    @PropertyDef(label = "扣费")
    private Double ruleReducePrice;
    @Column(name = "ADD_NUM_")
    @PropertyDef(label = "增重", description = "单位:kG")
    private Double addNum;
    @Column(name = "DE_NUM_")
    @PropertyDef(label = "扣重", description = "单位:kG")
    private Double deNum;
    @Column(name = "ADD_PRICE_")
    @PropertyDef(label = "增价", description = "单位:元")
    private Double addPrice;
    @Column(name = "DE_PRICE_")
    @PropertyDef(label = "扣价", description = "单位:元")
    private Double dePrice;
    @Column(name = "RESULT_", length = 2)
    @PropertyDef(label = "检验结果", description = "0=不合格 1=合格")
    private String result;
    @Column(name = "REMARKS_", length = 50)
    @PropertyDef(label = "备注")
    private String remarks;
}
src/main/java/com/fzzy/async/fzzy40/entity/Fz40CheckItemKey.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
package com.fzzy.async.fzzy40.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import java.io.Serializable;
@Data
@AllArgsConstructor
public class Fz40CheckItemKey implements Serializable {
        private String checkId;
        private String companyId;
        private String standardId;
    public Fz40CheckItemKey(){
            super();
        }
    }
src/main/java/com/fzzy/async/fzzy40/impl/Fzzy40Sync1203.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,200 @@
package com.fzzy.async.fzzy40.impl;
import com.fzzy.api.Constant;
import com.fzzy.api.entity.Api1105;
import com.fzzy.api.entity.Api1203;
import com.fzzy.api.entity.ApiLog;
import com.fzzy.api.entity.GbCheckItem;
import com.fzzy.api.service.ApiCommonService;
import com.fzzy.api.service.ApiTriggerService;
import com.fzzy.api.utils.ContextUtil;
import com.fzzy.api.view.repository.Api1203Rep;
import com.fzzy.api.view.repository.ApiLogRep;
import com.fzzy.api.view.repository.GbCheckItemRep;
import com.fzzy.async.fzzy40.entity.Fz40CheckItem;
import com.fzzy.async.fzzy40.entity.Fz40InoutRecord;
import com.fzzy.async.fzzy40.repository.Fzzy40Sync1202Rep;
import com.fzzy.async.fzzy40.repository.Fzzy40Sync1203Rep;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.time.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.List;
/**
 * ç²®é£Ÿå…¥åº“检验信息
 */
@Slf4j
@Component
public class Fzzy40Sync1203 {
    /**
     * å…¥åº“类型
     */
    private final static String INOUT_TYPE_IN = "IN";
    @Autowired
    private Fzzy40Sync1202Rep fzzySync1202Rep;
    @Autowired
    private Fzzy40Sync1203Rep fzzySync1203Rep;
    @Autowired
    private ApiTriggerService apiTriggerService;
    @Autowired
    private Api1203Rep api1203Rep;
    @Autowired
    private GbCheckItemRep gbCheckItemRep;
    @Autowired
    private ApiCommonService commonService;
    @Autowired
    private ApiLogRep apiLogRep;
    /**
     * ç²®é£Ÿå…¥åº“检验信息
     *
     * @param deptId
     * @param start
     * @param end
     */
    public void syncData(String kqdm, String deptId, Date start, Date end) {
        log.info("-------------1203接口数据开始同步------------------");
        //同步数据,只记录失败的信息
        ApiLog apiLog = new ApiLog();
        apiLog.setType(ApiLog.TYPE_SYNC);
        apiLog.setKqdm(deptId);
        apiLog.setUploadTime(new Date());
        apiLog.setInteId(Constant.API_CODE_1203);
        apiLog.setStatus(99);
        apiLog.setId(ContextUtil.getUUID());
        try {
            //获取粮食入库记录信息
            List<Fz40InoutRecord> list = fzzySync1202Rep.listInoutRecord(deptId, INOUT_TYPE_IN, start, end);
            if (null == list || list.isEmpty()) {
                log.info("-------------没有获取到粮食入库信息------------------");
                return;
            }
            Api1203 apiData;
            Api1105 api1105;
            List<Fz40CheckItem> fz40CheckItems;
            List<GbCheckItem> gbCheckList;
            String jyxm;
            String jyz;
            String zkj;
            String zkl;
            List<Api1203> api1203List;
            for (Fz40InoutRecord sysData : list) {
                if(null == sysData.getRecordWeight() || sysData.getRecordWeight() == 0){
                    sysData.setRecordWeight(sysData.getSettleWeight());
                }
                //判断净重是否大于0,等于0表示不合格,不进行同步上传
                if(null == sysData.getRecordWeight() || sysData.getRecordWeight() == 0){
                    continue;
                }
                //获取入库质检信息
                fz40CheckItems = fzzySync1203Rep.listInoutCheckItem(sysData.getCheckId(), deptId.substring(0, 4));
                if (null == fz40CheckItems || fz40CheckItems.isEmpty()) {
                    log.info("-------------没有获取到当前入库质检信息--------------");
                    continue;
                }
                //获取货位信息
                api1105 = commonService.getApi1105Cache(sysData.getDepotId());
                if (null == api1105) {
                    continue;
                }
                apiData = new Api1203();
                apiData.setRkjydh(Constant.INOUT_TYPE_14 + sysData.getId().substring(4));
                //货位代码
                apiData.setHwdm(api1105.getHwdm());
                apiData.setRkywdh(apiData.getRkjydh());
                if(null == sysData.getFullWeightTime()){
                    sysData.setFullWeightTime(DateUtils.addMinutes(sysData.getRegisterTime(), 5));
                }
                apiData.setQysj(sysData.getFullWeightTime());
                apiData.setQyrxm(sysData.getCheckUser());
                //扦样方式 2-智能随机
                apiData.setQyfs("2");
                //检测项,检测值,增扣价及增扣量
                jyxm = "";
                jyz = "";
                zkj = "";
                zkl = "";
                for (Fz40CheckItem fz40CheckItem : fz40CheckItems) {
                    gbCheckList = gbCheckItemRep.findByBizCode(fz40CheckItem.getStandardId());
                    if (gbCheckList == null || gbCheckList.isEmpty()) {
                        continue;
                    }
                    if (StringUtils.isEmpty(fz40CheckItem.getValue())) {
                        continue;
                    }
                    jyxm += gbCheckList.get(0).getCode() + ",";
                    jyz += fz40CheckItem.getValue() + ",";
                    zkj += ",0.0";
                    zkl += ",0.0";
                }
                apiData.setJyxm(jyxm);
                apiData.setJyz(jyz);
                apiData.setZkj(zkj.substring(1));
                apiData.setZkl(zkl.substring(1));
                if("UNPASS".equals(sysData.getCheckStatus())){
                    apiData.setJyjg("0");
                }
                if("PASS".equals(sysData.getCheckStatus())){
                    apiData.setJyjg("1");
                }
                apiData.setJyrxm(sysData.getCheckUser());
                apiData.setJysj(DateUtils.addMinutes(sysData.getFullWeightTime(), 5));
                //粮食品种
                String mappingCode = apiTriggerService.getMappingCode(Constant.TRIGGER_P_LSPZ, sysData.getFoodVariety());
                apiData.setLspzdm(mappingCode);
                //粮食定等
                //保管员复核
                //粮食等级
                mappingCode = apiTriggerService.getMappingCode(Constant.TRIGGER_P_LSDJ, sysData.getFoodLevel());
                apiData.setLsdd(mappingCode);
                //操作标志及最后更新时间
                apiData.setZhgxsj(sysData.getCompleteTime());
                //业务id、库区编码、同步时间
                apiData.setBizId(sysData.getId());
                apiData.setKqdm(kqdm);
                apiData.setSyncTime(new Date());
                api1203List = api1203Rep.getDataById(apiData.getRkjydh());
                if(null == api1203List || api1203List.isEmpty()){
                    apiData.setCzbz(Constant.CZBZ_I);
                }else {
                    apiData.setCzbz(api1203List.get(0).getCzbz());
                }
                //保存数据
                api1203Rep.save(apiData);
                log.info("1203---同步数据:{}", apiData.toString());
            }
        } catch (Exception e) {
            log.error("---同步失败----{}", e);
            apiLog.setResult("同步失败:" + e.getMessage());
            apiLogRep.save(apiLog);
        }
    }
}
src/main/java/com/fzzy/async/fzzy40/repository/Fzzy40Sync1203Rep.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
package com.fzzy.async.fzzy40.repository;
import com.fzzy.async.fzzy40.entity.Fz40CheckItem;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import java.util.List;
/**
 * ç²®é£Ÿå…¥åº“质检
 */
public interface Fzzy40Sync1203Rep extends JpaRepository<Fz40CheckItem, String> {
    /**
     * æ ¹æ®å…¥åº“检验编码获取检验信息
     *
     * @param checkId
     * @return
     */
    @Query("from Fz40CheckItem where checkId=:checkId and companyId=:companyId order by standardId")
    List<Fz40CheckItem> listInoutCheckItem(@Param("checkId") String checkId, @Param("companyId") String companyId);
}