|
|
@@ -101,6 +101,39 @@ public class ScheduleTaskServiceImpl implements ScheduleTaskService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public void syncMakematerialReplace() {
|
|
|
+ SqlRowList rs = baseDao.queryForRowSet("select id,mp_mmcode, mp_mmdetno,mp_mmid from " +
|
|
|
+ "mes_makematerialreplace where status='W' order by id");
|
|
|
+ while (rs.next()) {
|
|
|
+ int count =
|
|
|
+ baseDao.getCount("select count(1) from mes_makematerial where status='D' and action<>'D' and " + "erpid=" + rs.getInt("mp_mmid"));
|
|
|
+ if (count > 0) {
|
|
|
+ MakeMaterial makeMaterial = baseDao.getJdbcTemplate().queryForObject("select mm.mm_code,mm.erpid," +
|
|
|
+ "mr.mp_prodcode mm_prodcode,pr_detail,pr_spec,pr_unit,mm.mm_oneuseqty qty,mm.mm_qty,mm.mm_oneuseqty,case when mm.mm_ifrep=-1 then 'alternative' else 'main' end type,bo_recorder,to_char(bo_date,'yyyy-MM-dd HH24:mi:ss') bo_date,nvl(bo_version,0) bo_version,nvl(bo_cop,'BYT') bo_cop,mm.mm_prodcode mm_repprodcode,mm.mm_balance,nvl(cu_mescode,ma_custcode) ma_custcode,to_char(mc_indate,'yyyy-MM-dd HH24:mi:ss') mc_indate,mc_recorder,mr.flag from mes_makematerialreplace mr left join mes_makematerial mm on mr.mp_mmid=mm.erpid left join make on mm.mm_maid=ma_id left join Product on mr.mp_prodcode=pr_code left join bom on bo_id=mm.mm_bomid left join MakeMaterialChangeDet on md_makecode=ma_code and md_mmdetno=mm.mm_detno left join MakeMaterialChange on mc_id=md_mcid left join customer on ma_custcode=cu_code where mr.id=?",
|
|
|
+ new BeanPropertyRowMapper<MakeMaterial>(MakeMaterial.class), rs.getInt("id"));
|
|
|
+ makeMaterial.setMesUser(tokenConfig.get("mesUser"));
|
|
|
+ makeMaterial.setMesPwd(MD5Util.encodeByMD5(tokenConfig.get("mesPwd")));
|
|
|
+ Map<String, Object> map = syncMES(JSON.toJSONString(makeMaterial,
|
|
|
+ SerializerFeature.WriteMapNullValue).replace("null", "\"\""), tokenConfig.get("syncMakeBaseDetail"));
|
|
|
+ if (map != null) {
|
|
|
+ int code1 = Integer.parseInt(StringUtil.nvl(map.get("code"), "-1"));
|
|
|
+ if (code1 == 0) {
|
|
|
+ baseDao.updateByCondition("mes_makematerialreplace", "status='D'", "status='W' and id=" + rs.getInt("id"));
|
|
|
+
|
|
|
+ } else {
|
|
|
+ baseDao.updateByCondition("mes_makematerialreplace", "status='F'", "status='W' and id=" + rs.getInt("id"));
|
|
|
+ baseDao.execute("insert into meserrorlog (mel_id,mel_url,mel_error,mel_indate,mel_djcode," +
|
|
|
+ "mel_djdetno,mel_type) values(MESERRORLOG_SEQ.NEXTVAL,'" + tokenConfig.get(
|
|
|
+ "syncMakeBaseDetail") + "','" + StringUtil.nvl(map.get("msg"), "") + "'," +
|
|
|
+ "sysdate,'" + rs.getGeneralString("mp_mmcode") + "'," + rs.getInt("mp_mmdetno") + "," +
|
|
|
+ "'工单BOM替代料')");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
private Map<String, Object> syncMES(String params,String url){
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
map.put("code",-1);
|